package org.xzx.cloud.ad.index;

/**
 *
 * TODO://通过索引快速高效检索广告数据，需要良好的索引设计，分：
 * TODO：//1.全量索引：检索系统启动时一次性读取数据库中广告数据，建立索引
 * TODO：//2.增量索引：系统运行过程中，监控数据库广告数据变化，实时更新索引
 * TODO://目前所有索引都是存在内存 Map 中，可采用第三方存储
 *
 * 索引的增删改查操作-索引服务
 *
 * @param <K> index key
 * @param <V> index value
 * @author xzx
 */
public interface IndexAware<K, V> {
    /**
     * 获取索引
     * @param key
     * @return
     */
    V get(K key);

    /**
     * 新增索引
     * @param key
     * @param value
     */
    void add(K key, V value);

    /**
     * 更新索引
     * @param key
     * @param value
     */
    void update(K key, V value);

    /**
     * 删除索引
     * @param key
     * @param value
     */
    void delete(K key, V value);
}
